namespace ext.form
{
	using System;
	using System.Runtime.CompilerServices;
	using System.Html;
	using System.Collections;
	
	
	/// <summary>Single checkbox field. Can be used as a direct replacement for traditional checkbox fields.</summary>
	/// <definedin>src\widgets\form\Checkbox.js</definedin>
	[ScriptName("Checkbox")]
	[ScriptNamespace("Ext.form")]
	[Imported()]
	public partial class Checkbox : ext.form.Field
	{
		
		#region Constructors
		/// <summary>Constructor</summary>
		/// <param name="config">Configuration options</param>
		public Checkbox(ext.form.Checkbox_Configuration config)
		{
		}
		
		/// <summary>Constructor</summary>
		public Checkbox()
		{
		}
		#endregion
		
		#region Fields
		/// <summary>The CSS class to use when the checkbox receives focus (defaults to undefined)</summary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		[ScriptName("focusClass")]
		public string FocusClass;
		
		/// <summary>The default CSS class for the checkbox (defaults to &apos;x-form-field&apos;)</summary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		[ScriptName("fieldClass")]
		public string FieldClass;
		
		/// <summary>true if the checkbox should render initially checked (defaults to false)</summary>
		/// <htmlSummary>&lt;tt&gt;true&lt;/tt&gt; if the checkbox should render initially checked (defaults to &lt;tt&gt;false&lt;/tt&gt;)</htmlSummary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		[ScriptName("checked")]
		public bool Checked;
		
		/// <summary>The text that appears beside the checkbox</summary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		[ScriptName("boxLabel")]
		public string BoxLabel;
		
		/// <summary>
		/// A DomHelper element spec, or true for a default element spec (defaults to
		/// {tag: &apos;input&apos;, type: &apos;checkbox&apos;, autocomplete: &apos;off&apos;})
		/// </summary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		[ScriptName("autoCreate")]
		public ext.auto.System_String_Or_System_Object AutoCreate;
		
		/// <summary>The value that should go into the generated input element&apos;s value attribute</summary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		[ScriptName("inputValue")]
		public string InputValue;
		
		/// <summary>
		/// A function called when the {@link #checked} value changes (can be used instead of
		/// handling the check event). The handler is passed the following parameters:
		///   checkbox : Ext.form.Checkbox The Checkbox being toggled.   checked : Boolean The new checked state of the checkbox.
		/// </summary>
		/// <htmlSummary>
		/// A function called when the {@link #checked} value changes (can be used instead of
		/// handling the check event). The handler is passed the following parameters:
		/// &lt;div class=&quot;mdetail-params&quot;&gt;&lt;ul&gt;
		/// &lt;li&gt;&lt;b&gt;checkbox&lt;/b&gt; : Ext.form.Checkbox&lt;div class=&quot;sub-desc&quot;&gt;The Checkbox being toggled.&lt;/div&gt;&lt;/li&gt;
		/// &lt;li&gt;&lt;b&gt;checked&lt;/b&gt; : Boolean&lt;div class=&quot;sub-desc&quot;&gt;The new checked state of the checkbox.&lt;/div&gt;&lt;/li&gt;
		/// &lt;/ul&gt;&lt;/div&gt;
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		[ScriptName("handler")]
		public System.Delegate Handler;
		
		/// <summary>
		/// An object to use as the scope (&apos;this&apos; reference) of the {@link #handler} function
		/// (defaults to this Checkbox).
		/// </summary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		[ScriptName("scope")]
		public object Scope;
		
		/// <summary>Fires when the checkbox is checked or unchecked.</summary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		[ScriptName("checkEventName")]
		public const string CheckEventName = "check";
		#endregion
		
		#region Methods
		/// <summary>Returns the checked state of the checkbox.</summary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		/// <returns>True if checked, else false</returns>
		[ScriptName("getValue")]
		public bool GetValue()
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sets the checked state of the checkbox, fires the &apos;check&apos; event, and calls a
		/// {@link #handler} (if configured).
		/// </summary>
		/// <htmlSummary>
		/// Sets the checked state of the checkbox, fires the &apos;check&apos; event, and calls a
		/// &lt;code&gt;{@link #handler}&lt;/code&gt; (if configured).
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		/// <param name="checked">
		/// The following values will check the checkbox:
		/// <c>true, &apos;true&apos;, &apos;1&apos;, or &apos;on&apos;</c>. Any other value will uncheck the checkbox.
		/// </param>
		/// <returns>this</returns>
		[ScriptName("setValue")]
		public ext.form.Field SetValue(bool @checked)
		{
			throw new System.Exception("Imported - not implemented");
		}
		
		/// <summary>
		/// Sets the checked state of the checkbox, fires the &apos;check&apos; event, and calls a
		/// {@link #handler} (if configured).
		/// </summary>
		/// <htmlSummary>
		/// Sets the checked state of the checkbox, fires the &apos;check&apos; event, and calls a
		/// &lt;code&gt;{@link #handler}&lt;/code&gt; (if configured).
		/// </htmlSummary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		/// <param name="checked">
		/// The following values will check the checkbox:
		/// <c>true, &apos;true&apos;, &apos;1&apos;, or &apos;on&apos;</c>. Any other value will uncheck the checkbox.
		/// </param>
		/// <returns>this</returns>
		[ScriptName("setValue")]
		public ext.form.Field SetValue(string @checked)
		{
			throw new System.Exception("Imported - not implemented");
		}
		#endregion
		
		#region Events
		/// <summary>Fires when the checkbox is checked or unchecked.</summary>
		/// <definedin>src\widgets\form\Checkbox.js</definedin>
		[ScriptName("check")]
		public event ext.auto.Delegate_ext_form_Checkbox_And_System_Boolean Check;
		#endregion
	}
}
